package com.ruoyi.house.domain;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.house.strategy.DataMask;
import com.ruoyi.house.strategy.MaskType;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 房源信息对象 house
 * 
 * @author yuanrui
 * @date 2025-07-25
 */
@Data
@TableName("house")
public class House extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 房间Id */
    @Excel(name = "房间Id")
    @DataMask(MaskType.APARTMENT_ID)
    private String id;

    /** 所属社区ID */
    @Excel(name = "所属社区ID")
    private Long communityId;

    /** 楼栋号 */
    @Excel(name = "楼栋号")
    private String building;

    /** 单元号 */
    @Excel(name = "单元号")
    private String unit;

    /** 房间号 */
    @Excel(name = "房间号")
    private String room;

    /** 面积(平方米) */
    @Excel(name = "面积(平方米)")
    private BigDecimal area;

    /** 楼层 */
    @Excel(name = "楼层")
    private Long floor;

    /** 总楼层 */
    @Excel(name = "总楼层")
    private Long totalFloor;

    /** 朝向 */
    @Excel(name = "朝向")
    private String orientation;

    /** 户型 */
    @Excel(name = "户型")
    private String houseType;

    /** 租金 */
    @Excel(name = "租金")
    private BigDecimal rentAmount;

    /** 押金 */
    @Excel(name = "押金")
    private BigDecimal depositAmount;

    /** 状态（0待租 1已租 2维护中） */
    @Excel(name = "状态", readConverterExp = "0=待租,1=已租,2=维护中")
    private String status;

    /** 房东ID */
    @Excel(name = "房东ID")
    private Long landlordId;

    /** 管家ID */
    @Excel(name = "管家ID")
    private Long butlerId;

    /** 房源描述 */
    @Excel(name = "房源描述")
    private String description;

    /** 设施 */
    @Excel(name = "设施")
    private String facilities;

    @TableField(exist = false)
    private String imageUrl;


    @TableField(exist = false)
    private String name;

    @TableField(exist = false)
    private Long houseId;

    @TableField(exist = false)
    private String communityname;

    public String getImageUrl() {
        return imageUrl;
    }

    public void setImageUrl(String imageUrl) {
        this.imageUrl = imageUrl;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Long getHouseId() {
        return houseId;
    }

    public void setHouseId(Long houseId) {
        this.houseId = houseId;
    }

    public String getCommunityname() {
        return communityname;
    }

    public void setCommunityname(String communityname) {
        this.communityname = communityname;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }

    public void setCommunityId(Long communityId) 
    {
        this.communityId = communityId;
    }

    public Long getCommunityId() 
    {
        return communityId;
    }

    public void setBuilding(String building) 
    {
        this.building = building;
    }

    public String getBuilding() 
    {
        return building;
    }

    public void setUnit(String unit) 
    {
        this.unit = unit;
    }

    public String getUnit() 
    {
        return unit;
    }

    public void setRoom(String room) 
    {
        this.room = room;
    }

    public String getRoom() 
    {
        return room;
    }

    public void setArea(BigDecimal area) 
    {
        this.area = area;
    }

    public BigDecimal getArea() 
    {
        return area;
    }

    public void setFloor(Long floor) 
    {
        this.floor = floor;
    }

    public Long getFloor() 
    {
        return floor;
    }

    public void setTotalFloor(Long totalFloor) 
    {
        this.totalFloor = totalFloor;
    }

    public Long getTotalFloor() 
    {
        return totalFloor;
    }

    public void setOrientation(String orientation) 
    {
        this.orientation = orientation;
    }

    public String getOrientation() 
    {
        return orientation;
    }

    public void setHouseType(String houseType) 
    {
        this.houseType = houseType;
    }

    public String getHouseType() 
    {
        return houseType;
    }

    public void setRentAmount(BigDecimal rentAmount) 
    {
        this.rentAmount = rentAmount;
    }

    public BigDecimal getRentAmount() 
    {
        return rentAmount;
    }

    public void setDepositAmount(BigDecimal depositAmount) 
    {
        this.depositAmount = depositAmount;
    }

    public BigDecimal getDepositAmount() 
    {
        return depositAmount;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setLandlordId(Long landlordId) 
    {
        this.landlordId = landlordId;
    }

    public Long getLandlordId() 
    {
        return landlordId;
    }

    public void setButlerId(Long butlerId) 
    {
        this.butlerId = butlerId;
    }

    public Long getButlerId() 
    {
        return butlerId;
    }

    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    public void setFacilities(String facilities) 
    {
        this.facilities = facilities;
    }

    public String getFacilities() 
    {
        return facilities;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("communityId", getCommunityId())
            .append("building", getBuilding())
            .append("unit", getUnit())
            .append("room", getRoom())
            .append("area", getArea())
            .append("floor", getFloor())
            .append("totalFloor", getTotalFloor())
            .append("orientation", getOrientation())
            .append("houseType", getHouseType())
            .append("rentAmount", getRentAmount())
            .append("depositAmount", getDepositAmount())
            .append("status", getStatus())
            .append("landlordId", getLandlordId())
            .append("butlerId", getButlerId())
            .append("description", getDescription())
            .append("facilities", getFacilities())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
